package com.work.cos.service.interfc;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import com.work.cos.domain.entity.UserEntity;
import com.work.cos.domain.vo.ComServiceResVo;
import com.work.cos.util.page.PageInfo;

/**
 * 
 * @author test
 * 
 */
public interface IUserService {

	/***
	 * 用户信息全局检索
	 * **/
	PageInfo<UserEntity> findAllUsers(UserEntity userInfo);
	
	/***
	 * 用户信息检索
	 * **/
	PageInfo<UserEntity> findUsersPage(UserEntity userInfo);
	
	/***
	 * 用户信息检索(电话，密码)
	 * @param phone
	 * @param password
	 * @return
	 */
	UserEntity findUsers(Long phone, String password);
	
	/**
	 * 
	 * @param map
	 * @return
	 */
	List<UserEntity> findUserDyn(Map<String, Object> map);
	
	/**
	 * 
	 * @param map
	 * @return
	 */
	int countDyn(Map<String, Object> map);
	
	/***
	 * 新增用户信息
	 * **/
	boolean addUsers(UserEntity userInfo);
	
	boolean addUsersAndAccount(UserEntity userInfo);
	
	boolean saveUserAndCoupon(UserEntity userInfo, String couponCode);
	
	
	/***
	 * 修改用户信息
	 * @param userInfo
	 * @return
	 */
	boolean updateUsers(UserEntity userInfo);
	
	/***
	 * check userInfo
	 * **/
	boolean checkUsers(String phoneNum, String password, String registerCode,
					   String token);
	
	/**
	 * 获取用户数量（电话）
	 * @param phone
	 * @return
	 */
	int getCountByMobile(Long phone);
	
	/**
	 * 
	 * @return
	 */
	int getCount();

	
	/**
	 * 用户图像
	 * @param userCode
	 * @param newPath
	 * @return
	 */
	boolean UserImage(Long userId, String newPath);
	
	/**
	 * 用户修改密码
	 * @param phone
	 * @param password
	 * @return
	 */
	boolean updateUserPwd(Long phone, String password);
	
	/**
	 * 用户修改头像
	 * @param userId
	 * @param avatorName
	 * @return
	 */
	boolean updateAvator(Long userId, String avatorName);
	
	/**
	 * 检索用户信息(userId)
	 * @param userId
	 * @return
	 */
	UserEntity findUsersByUserId(Long userId);

	/**
	 *
	 * @param phone
	 * @return
     */
	boolean getMemberMobileIsExist(Long phone);
	
	/**
	 * 注册
	 * @param phone
	 * @param password
	 * @param verCode
	 * @param relationCode
	 * @return
	 */
	ComServiceResVo doRegister(Long phone,String password,String verCode, Long relationCode);
	
	/**
	 * 登陆
	 * @param phone
	 * @param password
	 * @param request
	 * @return
	 */
	ComServiceResVo doLogin(Long phone, String password, HttpServletRequest request);
}
